package com.yzxb.erpsystem.service;

import com.yzxb.erpsystem.entity.Product;

import java.util.List;
import java.util.Optional;

public interface ProductService {
    
    /**
     * 创建商品
     */
    Product createProduct(Product product);
    
    /**
     * 更新商品
     */
    Product updateProduct(Long id, Product product);
    
    /**
     * 删除商品
     */
    void deleteProduct(Long id);
    
    /**
     * 根据ID查询商品
     */
    Optional<Product> getProductById(Long id);
    
    /**
     * 根据商品编码查询商品
     */
    Optional<Product> getProductByProductCode(String productCode);
    
    /**
     * 查询所有商品
     */
    List<Product> getAllProducts();
    
    /**
     * 根据状态查询商品列表
     */
    List<Product> getProductsByStatus(String status);
    
    /**
     * 根据分类ID查询商品列表
     */
    List<Product> getProductsByCategoryId(Long categoryId);
    
    /**
     * 上架商品
     */
    Product activateProduct(Long id);
    
    /**
     * 下架商品
     */
    Product deactivateProduct(Long id);
}